//
//  WelcomeViewController.swift
//  MicroBlog
//
//  Created by 002 on 15/10/19.
//  Copyright © 2015年 002. All rights reserved.
//

import UIKit
import SDWebImage

class WelcomeViewController: UIViewController {
    
    
    //MARK:视图的层次结构设置
    override func loadView() {
        
        // 替换背景视图（替换的时候backgroundView的大小会自动匹配）不用关心图像的缩放问题
        view = backgroundView
        
        // 设置UI界面
        setupUI()
    }
    
    // MARK:视图加载完毕的后处理，通常用来加载数据
    override func viewDidLoad() {
        
        // 异步加载用户头像
        iconView.sd_setImageWithURL(UserAccountViewModel.shareUserAccount.avatar_url, placeholderImage:  UIImage(named: "avatar_default_big"))
    }
    
    // MARK: 视图已经显示，通常可以动画／键盘处理
    override func viewDidAppear(animated: Bool) {
        
            super.viewWillAppear(animated)
        
        /**
        使用自动布局开发，有一个原则：
        - 所有`使用约束`设置位置的控件，不要再设置 `frame`
        
        * 原因：自动布局系统会根据设置的约束，自动计算控件的 frame
        * 在 layoutSubviews 函数中设置 frame
        * 如果程序员主动修改 frame，会引起 自动布局系统计算错误！
        
        - 工作原理：当有一个运行循环启动，自动布局系统，会`收集`所有的约束变化
        - 在运行循环结束前，调用 layoutSubviews 函数`统一`设置 frame
        - 如果希望某些约束提前更新！使用 `layoutIfNeeded` 函数让自动布局系统，提前更新当前收集到的约束变化
        */
        // 1.改变头像位置（更新）
        iconView.snp_updateConstraints { (make) -> Void in
            make.bottom.equalTo(view.snp_bottom).offset(-view.bounds.height + 200)
        }
        
        // 2.动画
        welcomeLabel.alpha = 0
        UIView.animateWithDuration(1.2,
            delay: 0,
            usingSpringWithDamping: 0.8,
            initialSpringVelocity: 10,
            options: [],
            animations: { () -> Void in
            
            // 修改所有`可动画`属性 - 自动布局的动画
            self.view.layoutIfNeeded()
            
            }) { (_) -> Void in
                
                    UIView.animateWithDuration(0.8, animations: { () -> Void in
                        self.welcomeLabel.alpha = 1
                        }, completion: { (_) -> Void in
                            
                            // 发送通知
                            NSNotificationCenter.defaultCenter().postNotificationName(WBSwitchRootViewControllerNotification, object: nil)
                    })
            }
        }
    
    // MARK:懒加载控件
    private lazy var backgroundView : UIImageView = UIImageView.init(imageName: "ad_background")
    private lazy var welcomeLabel : UILabel = UILabel.init(title: "欢迎回来", fontSize: 18, color: UIColor.darkGrayColor())
    private lazy var iconView : UIImageView = {
        
        let iv = UIImageView.init(imageName: "avatar_default_big")
        
        // 把图片剪裁成圆角
        iv.layer.cornerRadius = 45
        iv.clipsToBounds = true
        
        return iv
    }()
}



extension WelcomeViewController {
    
    //MARK:设置UI界面
    func setupUI() {
        
        // 1->添加控件
        self.view.addSubview(iconView)
        self.view.addSubview(welcomeLabel)
        
        // 2->自动布局
        // 头像
        iconView.snp_makeConstraints { (make) -> Void in
            make.bottom.equalTo(view.snp_bottom).offset(-200)
            make.centerX.equalTo(view.snp_centerX)
            make.width.equalTo(90)
            make.height.equalTo(90)
        }
        // 欢迎标签
        welcomeLabel.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(iconView.snp_bottom).offset(16)
            make.centerX.equalTo(iconView.snp_centerX)
        }
    }
}
